前兩天搞定了角色人設與Temperature參數調整,今天我想解決另一個很現實的問題:每個來問問題的人,技術程度根本不一樣。
如果一個剛學寫程式的新手問什麼是記憶體洩漏,AI如果直接講一堆底層引用或Profiler工具,新手大概直接放棄;但如果是資深工程師來問,AI還在那邊一行行教基礎語法、寫一堆新手註解,又顯得拖泥帶水。
所以我今天要在Dify裡面加入「對話變數(Variables)」,讓使用者在發問前先在畫面上選好自己的背景,讓AI動態調整回答的深度。
今天動手做了什麼?
在Dify的左側編排面板中,提示詞下方有一個「變數」設定區。我加了兩個輸入欄位:
加好之後,要把這兩個變數放進提示詞裡。我直接在原本Day3的資深顧問提示詞最底下,追加了這一段判斷規則:
#當前諮詢對象資訊
#回應調整原則
實測結果:同一個問題,不同程度的回答差多少?
右側預覽區上方立刻長出表單,我讓變數中的語言維持 Java,輸入完全相同的問題:
我問的問題:「什麼是記憶體洩漏(Memory Leak)?在 Java 中該怎麼避免?」
第一輪測試:設定為【新手初心者 + Java】
第二輪測試:設定為【資深工程師 + Java】
用表格比較來看:
今天的心得
以前寫程式如果要做到這種「針對不同身分動態改變 Prompt」的功能,自己架前後端要寫input表單、傳API、在後端用字串拼接處理變數,過程非常繁瑣。
但在Dify裡只要在設定裡拉好變數欄位,在提示詞用 {{level}} 嵌進去,整個應用的靈活性就大幅提升。它不再是一個死板的機器人,而是能真正因材施教的技術顧問。